

import java.text.ParseException;
import java.util.List;

public interface Interface {
    
	/**
	 * @Methodname userlogin
	 * @Description 
	 * @Date 2016年11月11日
	 * @Author 徐子恒
	 * @param username 用户名
	 * @param password 密码
	 * @return int 登录状态（0成功，1失败）
	 *
	 */
    int userlogin(String username,String password);

    /**
     * 
     * @Methodname pullRepositoryByVersion
     * @Description 
     * @Date 2016年11月11日
     * @Author 徐子恒
     * @param username 用户名
     * @param password 密码
     * @param repositoryId 仓库id
     * @param projectAddress 仓库版本
     * @param versionNum 本地项目目录地址
     * @return int 
     * 0 成功
     * 1 失败
     * 2 pull失败
     * 3 clone失败
     */
    int pullRepositoryByVersion(String username, String password, Long repositoryId, String projectAddress, String versionNum);

    /**
     * 
     * @Methodname getRepositoryVersion
     * @Description 
     * @Date 2016年11月11日
     * @Author 徐子恒
     * @param username 用户名
     * @param password 密码
     * @param repositoryId 仓库id
     * @return List<Version> 版本列表 若验证不通过，则返回null
     *
     */
    List<Version> getRepositoryVersion(String username, String password, Long repositoryId);
    
    /**
     * 
     * @Methodname isRepository
     * @Description 
     * @Date 2016年11月13日
     * @Author 徐子恒
     * @param filepath  仓库路径
     * @return boolean 
     *
     */
    boolean isRepository(String filepath);
    
    /**
     * @Methodname showRepository
     * @Description 获取当前登录用户的仓库列表
     * @Date 20161117
     * @author leiwanjie
     * @param username 用户名
     * @param password 密码
     * @return List<Project>
     */
    List<Project> showRepository(String username, String password);

	
	 /**
     * @Methodname pushMethod
     * @Description 推送仓库列表
     * @Date 20161118
     * @author leiwanjie
     * @param username 用户名
     * @param password 密码
     * @param repositoryAddressList 仓库地址列表
     * @param remark 推送注释
     * @return int 0代表推送成功，1代表推送失败 
     */
	int pushMethod(String username, String password, List<String> repositoryAddressList, String remark);
	
	 /**
     * @Methodname pullMethod
     * @Description 拉取仓库列表
     * @Date 20161118
     * @author leiwanjie
     * @param username 用户名
     * @param password 密码
     * @param projectAddress 本地项目目录地址
     * @param repositoryIdList 需要拉取的仓库id列表
     * @return int 0代表拉取成功，1代表拉取失败 
     */
	int pullMethod(String username, String password, String projectAddress, List<Long> repositoryIdList);
    

}